草庐IT

xml - 属性 noNamespaceSchemaLocation 对 XML 解析有什么影响?

全部标签

ruby - 为什么 sinatra 是 DSL?

非常firstline关于sinatra的文章是它是用Ruby以最小的努力快速创建Web应用程序的DSL。我可以理解它重量轻、非常灵活、可以快速创建Web应用程序并且只需很少的努力,但无法理解它是如何成为DSL的? 最佳答案 一个原因是它将其域内的Action(“动词”)定义为方法,例如:get'/hi'do"HelloWorld!"end在这里,Sinatra已将其域中的一个操作——即HTTP请求方法“GET”——合并到其“词汇表”中。(类似于围绕银行业务构建库并定义方法,例如account或customer。)这更多是关于DSL

iphone - 扩展 restful_authentication/AuthLogic 以支持匿名 iPhone 的延迟登录的最佳方法是什么?

我正在构建一个与RubyonRails后端对话的iPhone应用程序。RubyonRails应用程序还将为Web用户提供服务。restful_authentication插件是提供快速和可定制的用户身份验证的绝佳方式。但是,我希望iPhone应用程序的用户在新列中存储一个由手机的唯一标识符([[UIDevicedevice]uniqueIdentifier])自动创建的帐户。稍后,当用户准备好创建用户名/密码时,帐户将更新为包含用户名和密码,iPhone唯一标识符保持不变。用户在设置用户名/密码之前不能访问该网站。然而,他们可以使用iPhone应用程序,因为该应用程序可以使用它的标识符

ruby - 基于 OOP 的文本游戏中的优雅命令解析

我正在玩用Ruby编写MUD/文本冒险(请不要笑)。谁能给我任何关于解析输入文本的优雅的、基于oop的解决方案的建议?我们在这里谈论的只是“把魔杖放在table上”更复杂的事情。但是一切都需要柔软;我想稍后轻松地扩展命令集。我目前的想法,稍微简化一下:每个项目类别(盒子、table、房间、播放器)都知道如何识别“属于”它的命令。游戏类理解一种特定于领域的语言,涉及诸如“将对象X移入对象Y”、“显示对象X的描述”等Action。游戏类询问房间中的每个项目是否识别输入命令。先说是赢。然后它将控制传递给项目类中处理命令的方法。此方法重新表述DSL中的命令,将其传递回游戏对象以实现它。必须有一

ruby - 使用 Ruby 解析标签中有冒号的 RSS 项?

我正在尝试从具有此标记结构的RSS提要中解析信息:foobar使用内置的RubyRSS库。显然,执行item.dc:subject会引发错误,但我想不出任何方法来提取该信息。有什么办法可以让它工作吗?或者是否可以使用不同的RSS库? 最佳答案 带有“:”的标签实际上是带有命名空间的XML标签。我使用RSS模块从来没有取得过好的结果,因为提要格式通常不符合规范,导致模块放弃。我强烈推荐使用Nokogiri来解析提要,无论是RDF、RSS还是ATOM。Nokogiri能够使用XPath访问器或CSS访问器,并且都支持命名空间。最后两行是

ruby - [\s\S]* 有什么区别?和 。*?

我在正则表达式中遇到了以下标记:[\s\S]*?如果我没有理解错的话,字符类的意思是“匹配一个空白字符或一个非空白字符”。因此,这不会做与.*完全相同的事情吗?一个可能的区别是通常.不匹配换行符。然而,这个正则表达式是用Ruby编写的,并通过了mmodifier。这意味着.实际上匹配换行符。是否有任何其他理由使用[\s\S]*?而不是.*?如果有帮助,我正在查看的正则表达式出现在sprocketslibrary中在第97行的HEADER_PATTERN常量中。完整的表达式是:/\A\s*((\/\*([\s\S]*?)\*\/)|(\#\#\#([\s\S]*?)\#\#\#)|(\/

c - 为什么此代码不适用于 ruby​​ 1.9 但适用于 ruby​​ 1.8?

我从ruby​​website下载了最新稳定的ruby​​源代码(1.9.2-p180)并使用MinGW4.5.2-TDM和MSYS在Windows上编译它。为了编译,我运行了shconfigure和make。我完全按照预期获得了msvcrt-ruby191.dll和libmsvcrt-ruby191.dll.a。然后我写了这段代码:#includeintmain(){ruby_init();rb_funcall2(Qnil,rb_intern("p"),1,(VALUE[]){INT2FIX(0)});ruby_finalize();}我用g++编译,链接到ruby​​的dll。当我

ruby - 解析 100mb JSON 负载的有效方法

我每12小时在我的亚马逊EC2微型实例上运行一次cron作业。它下载118MB的文件并使用json库解析它。这当然会使实例内存不足。我的实例有416MB的可用内存,但随后我运行脚本,它下降到6MB,然后被操作系统杀死。我想知道我在这里有什么选择?是否可以通过Ruby有效地解析它,或者我是否必须下降到像C这样的低级东西?我可以获得一个功能更强大的亚马逊实例,但我真的很想知道是否可以通过Ruby做到这一点。更新:我看过yajl。它可以在解析时为您提供json对象,但问题是,如果您的JSON文件仅包含1个根对象,那么它将被迫解析所有文件。我的JSON看起来像这样:--Root-Obj1-Ob

ruby - 为什么 Ruby 定义 Object#=~?

阅读对anotherquestion中的答案的评论后并做了一些研究,我看到=~是在Object上定义的,然后被String和Regexp覆盖.String和Regexp的实现似乎采用了另一个类:"123"=~"123"#=>TypeError:typemismatch:Stringgiven/123/=~/123/#=>TypeError:can'tconvertRegexptoString虽然=~是为Object定义的,但是+不是:Object.new=~1#=>nilObject.new+1#=>undefinedmethod`+'for#为什么要定义Object#=~,而不是将=

ruby - 为什么 .index 比 .all 快?

这是做同样事情的两个简单block:a=(0..100).to_aa.all?do|x|!(x==1000)endnil==a.indexdo|x|x==1000end除了第二个总是快一点。为什么?usersystemtotalrealtestingall1.1400000.0000001.140000(1.144535)testingindex0.7700000.0000000.770000(0.769195) 最佳答案 原因是index是Array的一个方法。Ruby将迭代(在C中)项目并将它们依次生成到block。另一方面,a

什么是SSO?

SSO(SingleSignOn)单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案之一。当用户第一次访问应用系统1的时候,因为还没有登录,会被引导到认证系统中进行登录;根据用户提供的登录信息,认证系统进行身份校验,如果通过校验,应该返回给用户一个认证的凭据--ticket;用户再访问别的应用的时候就会将这个ticket带上,作为自己认证的凭据,应用系统接受到请求之后会把ticket送到认证系统进行校验,检查ticket的合法性。如果通过校验,用户